package com.powerband.apiheartrate.base

interface FBKBasicInfoCallBack {
    /**
     * 返回设备电量
     */
    fun batteryPower(value: Int, baseMethod: FBKApiBaseMethod?)


    /**
     * 返回固件版本
     */
    fun firmwareVersion(version: String?, baseMethod: FBKApiBaseMethod?)

    /**
     * 返回硬件版本
     */
    fun hardwareVersion(version: String?, baseMethod: FBKApiBaseMethod?)

    /**
     * 返回软件本
     */
    fun softwareVersion(version: String?, baseMethod: FBKApiBaseMethod?)


    /**
     * 返回系统ID
     * @param data 字节序列
     */
    fun deviceSystemID(data: ByteArray?, baseMethod: FBKApiBaseMethod?)

    /**
     * 返回Model名称
     */
    fun deviceModelString(model: String?, baseMethod: FBKApiBaseMethod?)


    /**
     * 返回厂商名称
     */
    fun deviceManufacturerName(name: String?, baseMethod: FBKApiBaseMethod?)


    /**
     * 同步设备时间成功回调
     */
    fun deviceTimeSynced()

    /**
     * 设置设备心跳阈值回调
     */
    fun deviceThresholdChanged()

    /**
     * 获取私有mac地址
     *  * 暂未实现
     */
    fun privateMacAddress(
        paramMap: Map<String?, String?>?,
        baseMethod: FBKApiBaseMethod?
    )

    /**
     * 设备基本信息
     *  * 暂未实现
     */
    fun deviceBaseInfo(
        baseInfo: FBKBleBaseInfo?,
        baseMethod: FBKApiBaseMethod?
    )

    /**
     * 返回连接信息
     * 暂未实现
     */
    fun bleConnectInfo(info: String?, baseMethod: FBKApiBaseMethod?)

    /**
     * 返回设备协议版本
     * 暂未实现
     */
    fun protocolVersion(version: String?, baseMethod: FBKApiBaseMethod?)

    /**
     * 返回实时步频
     */
    fun deviceStepFrequency(value: Int?, baseMethod: FBKApiBaseMethod?)

    /**
     * 返回实时步频
     */
    fun devicePressure(value: Int?, baseMethod: FBKApiBaseMethod?)

    /**
     * 返回实时血氧
     */
    fun deviceOxygen(value: Int?, baseMethod: FBKApiBaseMethod?)

    /**
     * 返回私有版本
     */
    fun privateVersion(paramMap: Map<String?, String?>?, baseMethod: FBKApiBaseMethod?)

    /**
     * 返回设备序列号
     * 暂未实现
     */
    fun deviceSerialNumber(value: String?, baseMethod: FBKApiBaseMethod?)

    /**
     * 手环按钮事件响应
     */
    fun armBandPlayStatusChange()

    /**
     * 手环长按5s解除配对响应
     */
    fun armBandUnbind()

    /**
     * 电池状态
     * @param state 三种状态， default： 未在充电，charing：充电中， fullfilled： 已充满
     */
    fun  batteryStatus(state: BatteryStatus)

    fun armBandModeChanged(mode: FBKDeviceMode, type: FBKModeType)
    /**
     * 心率测量中
     */
    fun heartRateInMeasuring()

    fun summaryHeartRateInfo(info: List<Map<String, Any>>)
    fun summaryStepsInfo(info: List<Map<String, Any>>)
    fun summaryBloodOxygenInfo(info: List<Map<String, Any>>)
    fun summaryPressureIndexInfo(info: List<Map<String, Any>>)
    fun summaryCalorieInfo(info: List<Map<String, Any>>)
    fun summarySleepInfo(info: List<Map<String, Any>>)
    fun summaryExerciseInfo(info: List<Map<String, Any>>)
    fun motionDataInfo(info:List<Map<String, Any>>, isSport: Boolean)

    fun sportModeDetailInfo(info: Map<String, Int>)
    fun logOutBufferData(data: List<Byte>)

    fun motionDataSeqUpdated(isSport: Boolean)

    fun currentBandTime(timeNow: Long)
    // 总包数， 测试用
    fun totalPacket(num: Int)

    fun doNotDisturbTimeInfo(enabled: Boolean)

    fun exitedSleepAlgorithm()

    fun heartRateLog(logList: List<Any>)

    fun lightStatusChanged(on: Boolean)
}